﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using RESTScrum.Dominio;
using RESTScrum.Persistencia;
using System.ServiceModel.Web;
using System.Net;

namespace RESTScrum
{
    
    public class TipoRecursos : ITipoRecursos
    {

        private TipoRecursoDAO dao = new TipoRecursoDAO();

        public TipoRecurso CrearTipoRecurso(TipoRecurso TipoRecursoACrear)
        {
            TipoRecurso existe = ObtenerTipoRecurso(TipoRecursoACrear.Codigo);

            if (existe != null)
                throw new WebFaultException<Error>(
                    new Error()
                    {
                        CodigoNegocio = "C01",
                        MensajeNegocio = "Tipo de Recurso ya existe"
                    },
                    HttpStatusCode.InternalServerError);

            return dao.Crear(TipoRecursoACrear);
        }

        public TipoRecurso ObtenerTipoRecurso (string codigo)
        {
            return dao.Obtener(codigo);
        }

        public TipoRecurso ModificarTipoRecurso(TipoRecurso TipoRecursoAModificar)
        {
            return dao.Modificar(TipoRecursoAModificar);
        }

        public void EliminarTipoRecurso(string codigo)
        {
            dao.Eliminar(codigo);
        }

        public List<TipoRecurso> ListarTipoRecurso()
        {
            return dao.ListarTodos();
        }
    }
}
